package com.hxm.demo.test1;

/**
 * description: add a description
 *
 * @author huangxiaoming
 * @version 1.0.0
 * @date 2022/10/09 11:38:46
 */
public class TestReverseInt {

    /**
     * 7. 整数反转
     *
     * @param args
     */
    public static void main(String[] args) {
        int x = 1534236469;
        System.out.println(reverse(x));
    }


    /**
     * 给你一个 32 位的有符号整数 x ，返回将 x 中的数字部分反转后的结果。
     * <p>
     * 如果反转后整数超过 32 位的有符号整数的范围 [−231,  231 − 1] ，就返回 0。
     * <p>
     * 假设环境不允许存储 64 位整数（有符号或无符号）。
     *
     * @param x
     * @return
     */
    public static int reverse(int x) {
        int reverse = 0;
        while (x != 0) {
            if (reverse > Integer.MAX_VALUE / 10 || reverse < Integer.MIN_VALUE / 10) {
                return 0;
            }
            int mod = x % 10;
            x = x / 10;
            reverse = reverse * 10 + mod;
        }
        return reverse;
    }
}
